1. Field of the Invention
The present invention generally relates to user interfaces to software applications and, more particularly, to the creation, maintenance and use of a user interface to an application program which has been tailored to various characteristics of the current user.
2. Description of the Prior Art
Computer users vary in many respects, such as job duties, level of familiarity with various application programs, need to use various operations of application programs, frequency of use of various operations of application programs, and right of access to different operations of application programs. Most application programs, however, present a single user interface which does not take into account the individual characteristics of the current user. The result is that the user is presented a user interface which may be confusing, inefficient, insufficiently restricted, or otherwise inappropriate for him.
The user interface for an application program can take many forms, such as menus, sets of icons, sets of action bars, or a command line. The user normally selects an operation or moves through the hierarchy of menus, etc. by some combination of keystrokes, cursor movements, mouse operations, commands or the like.
At any given time, the array of choices presented to the user may be so large as to be confusing, to take up an undue amount of the screen space, or to take up so much memory with the code underlying the choices that system performance is compromised. The array may contain operations which the user does not need or does not yet know how to use. In addition, the user may find it necessary or convenient to access in close sequence operations of a program which appear in different aspects (e.g., menus or action bars) of the user interface. In such a case, it is cumbersome to traverse from menu to menu or from action bar to action bar.
As the user gains familiarity with the application program or as his needs change, he may "outgrow" the user interface, requiring access to a broader or different set of operations.
A number of rudimentary attempts have been made to alter the user interface of an application program, or at least the user's access to aspects of the program or manipulated data, in response to a characteristic of the user. Perhaps the earliest example is the assignment of access levels to database users so that some users may not have write access to certain files or fields in files, some users may not have read access to certain files or fields, and some users may not even be able to access the database at all. This feature is now common among commercially available database management systems.
A more closely related technique is the provision of a software switch, set by the user, which governs whether menus or other explanatory aspects of the user interface are visible on the screen. Thus, a novice user would set the switch to make menus appear on the screen so that he may use the menus as a guide in performing operations. On the other hand, an advanced user would set the switch to remove the menus from the screen so that he could view data in the entire screen, unobstructed by the menu. The word processing program WordStar (trademark of MicroPro) uses such an approach, implemented in the form of differing levels of "help".
An even more recent trend has been to provide so-called "soft interfaces" to application programs, which allow the user to emulate to a degree the interface of a program with which he is already familiar or to create an interface which is purely individual. The word processing program Sprint (trademark of Borland) provides a soft interface which enables the user to operate it with the commands used by WordPerfect (trademark of WordPerfect), WordStar, Word (trademark of Microsoft), certain other word processors, or commands of the user's own selection.
Finally, the methodology exists on a systems level to allow programmers to automate the creation of menus, etc. in the course of application development. The programmer specifies a list of operations, codes, explanatory material, and format parameters, and the menu generator creates a menu for presentation on the screen.
There is nothing in the prior art, however, which enables the user or system administrator to select arbitrarily from the range of operations offered by an application program and thereby create an interface which is truly customized to the level of familiarity, type of job, level of access and other characteristics of the user.